package com.tudouji.project.wlinfo.service;

import com.tudouji.framework.web.domain.AjaxResult;
import com.tudouji.project.system.domain.Tuser;
import com.tudouji.project.wlinfo.domain.Wlinfo;

import java.util.List;

/**
 * 物流信息Service接口
 *
 * @author tudouji
 * @date 2021-10-27
 */
public interface IWlinfoService {
	/**
	 * 查询物流信息
	 *
	 * @param guid
	 *            物流信息ID
	 * @return 物流信息
	 */
	public Wlinfo selectWlinfoById(String guid);

	/**
	 * 查询物流信息列表
	 *
	 * @param wlinfo
	 *            物流信息
	 * @return 物流信息集合
	 *
	 *
	 */

	public List<Wlinfo> selectWlinfoList(Wlinfo wlinfo);


	public List<Wlinfo> selectWlinfoList(Wlinfo wlinfo,String functiontype);

	public List<Wlinfo> selectWlinfoList(Wlinfo wlinfo, String functiontype, Tuser tuser);

	/**
	 * 新增物流信息
	 *
	 * @param wlinfo
	 *            物流信息
	 * @return 结果
	 */
	public int insertWlinfo(Wlinfo wlinfo);

	/**
	 * 修改物流信息
	 *
	 * @param wlinfo
	 *            物流信息
	 * @return 结果
	 */
	public int updateWlinfo(Wlinfo wlinfo);

	/**
	 * 批量删除物流信息
	 *
	 * @param guids
	 *            需要删除的物流信息ID
	 * @return 结果
	 */
	public int deleteWlinfoByIds(String[] guids);

	/**
	 * 删除物流信息信息
	 *
	 * @param guid
	 *            物流信息ID
	 * @return 结果
	 */
	public int deleteWlinfoById(String guid);

	public List<Wlinfo> getWlInfoList(String orgid, String customerid, String startdate, String enddate,
			String functiontype, String status, String paystatus);

	public int deliver(String guid);

	/**
	 * 运费结算
	 *
	 * @param wlinfo
	 * @return
	 */
	public AjaxResult settle(Wlinfo wlinfo);

	/**
	 * 反结算
	 *
	 * @param guid
	 * @return
	 */
	public AjaxResult backSettle(String guid);

	public AjaxResult checkOrder(String guid);

	public List<Wlinfo> exportWlInfoList(String orgid, String customerid, String startdate, String enddate
			, String status, String transtype);

	public List<Wlinfo> findSOA(Wlinfo info);

    AjaxResult checkWlInfo(String carCode, String orderid);

    AjaxResult getWlDriver(String mobilephone);

	AjaxResult sendCar(Wlinfo wlinfo, Long orderId, String fileIds, Long taskid, String opinion);

	AjaxResult toSendCar(Long orderid, Integer orderType);

	AjaxResult deleteCar(String linkcode);
}
